import CodeConstant from '~/constants/code';
import utils from '.';
import * as lodash from 'lodash';
import BaseError from '~/error/BaseError';

/**
 * 验证分页参数
 * @param page 第几页
 * @param limit 分页参数
 * @return bool
 */
export function validPageLimit(page: number, limit: number) {
    if (utils.text.isEmpty(page) || utils.text.isEmpty(limit)) {
        throw new BaseError('分页参数错误');
    }

    if (page < 0 || limit < 0) {
        throw new BaseError('分页参数错误');
    }

    return true;
}

/**
 * 验证排序字段 
 * @param arr 
 * @param val 
 */
export function validOrderField(arr: string[], val: string) {
    if (lodash.indexOf(arr, val) === -1) {
        throw new BaseError('排序字段错误');
    }

    return true;
}

/**
 * 验证排序值
 * @param val 
 */
export function validOrderVal(val: string) {
    if (lodash.indexOf([CodeConstant.ASC, CodeConstant.DESC], val.toUpperCase()) === -1) {
        throw new BaseError('排序字段值错误');
    }

    return true;
}